var sysId = "";
var nodeId = "";
var tableId = "";
var tableName = "";
var nodeName = "";
var editIndex = undefined;
// 根据节点对应库表是否有数据，控制【表单设计】按钮权限
function buttonControl() {
	$.ajax({
		url : 'platform/cbb/billDefineManagerController/checkNodeHasData',
		data : {
			tableId : tableId
		},
		type : 'post',
		dataType : 'json',
		success : function(result) {
			var dataCount = result.dataCount;
			if (0 == dataCount) {
				$('#openForm').linkbutton('disable');
			} else {
				$('#openForm').linkbutton('enable');
			}
		}
	});
}




function endEditing() {
	if (editIndex == undefined) {
		return true;
	}
	if ($('#cbbBillDefineDataGrid').datagrid('validateRow', editIndex)) {
		$('#cbbBillDefineDataGrid').datagrid('endEdit', editIndex);
		return true;
	} else {
		$.messager.show({
			title : commonLang.tip.alert,// '提示',
			// commonLang.tip.checkData "请检查数据是否正确！"
			msg : commonLang.tip.checkData,
			timeout : 2000,
			showType : 'slide'
		});
		return false;
	}
}

/**
 * 用于单元格编辑是重写的方法
 */
$.extend($.fn.datagrid.methods, {
	editCell : function(jq, param) {
		return jq.each(function() {
			var fields = $(this).datagrid('getColumnFields', true).concat(
					$(this).datagrid('getColumnFields'));
			for ( var i = 0; i < fields.length; i++) {
				var col = $(this).datagrid('getColumnOption', fields[i]);
				col.editor1 = col.editor;
				if (fields[i] != param.field) {
					var fieldOpts = $(this).datagrid('getColumnOption',
							fields[i]);
					if (!fieldOpts.hidden || fieldOpts.hidden == false) {
						col.editor = null;
					}
				}
			}
			$(this).datagrid('beginEdit', param.index);
			for ( var i = 0; i < fields.length; i++) {
				var col = $(this).datagrid('getColumnOption', fields[i]);
				col.editor = col.editor1;
			}
		});
	},
	addEditor : function(jq, param) {
		if (param instanceof Array) {
			$.each(param, function(index, item) {
				var e = $(jq).datagrid('getColumnOption', item.field);
				e.editor = item.editor;
			});
		} else {
			var e = $(jq).datagrid('getColumnOption', param.field);
			e.editor = param.editor;
		}
	},
	removeEditor : function(jq, param) {
		if (param instanceof Array) {
			$.each(param, function(index, item) {
				var e = $(jq).datagrid('getColumnOption', item);
				e.editor = {};
			});
		} else {
			var e = $(jq).datagrid('getColumnOption', param);
			e.editor = {};
		}
	}
});

/**
 * 【是否必著】转换方法
 * 
 * @param value
 * @param rowData
 * @param rowIndex
 * @returns {String}
 */
function fomaterIsMust(value, rowData, rowIndex) {
	var c = "";
	if (rowData.COL_IS_MUST == "Y") {
		c = "<input type='checkbox' id='"
				+ rowData.ID
				+ "IsMust' checked='checked' value='Y' onclick='onCheckIsMust(\""
				+ rowData.ID + "IsMust\"," + rowIndex + ")' />";
	} else {
		c = "<input type='checkbox' id='" + rowData.ID
				+ "IsMust' value='N' onclick='onCheckIsMust(\"" + rowData.ID
				+ "IsMust\"," + rowIndex + ")' />";
	}
	return c;
}


/**
 * 【是否显示】复选框值发生改变更新datagrid对应的值
 * 
 * @returns
 */
function onCheckIsMust(id, rowIndex) {
	if (endEditing()) {
		$("#cbbBillDefineDataGrid").datagrid('removeEditor', 'COL_IS_MUST'); // 删除【是否必著】编辑器
		$("#cbbBillDefineDataGrid").datagrid('addEditor', { // 添加【是否必著】编辑器
			field : 'COL_IS_MUST',
			editor : {
				type : 'text'
			}
		});
		
		var checkbox = document.getElementById(id);
		var isCheck = false;
		if (checkbox.checked) {
			isCheck = true;
		}
		if (isCheck) {
			$('#cbbBillDefineDataGrid').datagrid('selectRow', rowIndex).datagrid('beginEdit', rowIndex);
			var editors = $('#cbbBillDefineDataGrid').datagrid('getEditors',rowIndex);
			var sfgzEditor = editors[0];
			sfgzEditor.target.val("Y");
			$('#cbbBillDefineDataGrid').datagrid('endEdit', rowIndex);
		} else {
			
			$('#cbbBillDefineDataGrid').datagrid('selectRow', rowIndex).datagrid('beginEdit', rowIndex);
			var editors = $('#cbbBillDefineDataGrid').datagrid('getEditors',rowIndex);
			var sfgzEditor = editors[0];
			sfgzEditor.target.val("N");
			$('#cbbBillDefineDataGrid').datagrid('endEdit', rowIndex);
			
		}
	} else {
		var checkbox = document.getElementById(id);
		var isCheck = false;
		if (checkbox.checked) {
			isCheck = true;
		}
		if (isCheck) {
			document.getElementById(id).checked = false;
		} else {
			document.getElementById(id).checked = true;
		}
	}
}

/**
 * 【是否详细显示】转换方法
 * 
 * @param value
 * @param rowData
 * @param rowIndex
 * @returns {String}
 */
function fomaterIsDetail(value, rowData, rowIndex) {
	var c = "";
	if (rowData.COL_IS_DETAIL == "Y") {
		c = "<input type='checkbox' id='"
				+ rowData.ID
				+ "IsDetail' checked='checked' value='Y' onclick='onCheckIsDetail(\""
				+ rowData.ID + "IsDetail\"," + rowIndex + ")' />";
	} else {
		c = "<input type='checkbox' id='" + rowData.ID
				+ "IsDetail' value='N' onclick='onCheckIsDetail(\"" + rowData.ID
				+ "IsDetail\"," + rowIndex + ")' />";
	}
	return c;
}


/**
 * 【是否详细显示】复选框值发生改变更新datagrid对应的值
 * 
 * @returns
 */
function onCheckIsDetail(id, rowIndex) {
	
	if (endEditing()) {
		$("#cbbBillDefineDataGrid").datagrid('removeEditor', 'COL_IS_DETAIL'); // 删除【是否详细显示】编辑器
		$("#cbbBillDefineDataGrid").datagrid('addEditor', { // 添加【是否详细显示】编辑器
			field : 'COL_IS_DETAIL',
			editor : {
				type : 'text'
			}
		});
		
		var checkbox = document.getElementById(id);
		var isCheck = false;
		if (checkbox.checked) {
			isCheck = true;
		}
		if (isCheck) {
			$('#cbbBillDefineDataGrid').datagrid('selectRow', rowIndex).datagrid('beginEdit', rowIndex);
			var editors = $('#cbbBillDefineDataGrid').datagrid('getEditors',rowIndex);
			var sfgzEditor = editors[1];
			sfgzEditor.target.val("Y");
			$('#cbbBillDefineDataGrid').datagrid('endEdit', rowIndex);
		} else {
			
			$('#cbbBillDefineDataGrid').datagrid('selectRow', rowIndex).datagrid('beginEdit', rowIndex);
			var editors = $('#cbbBillDefineDataGrid').datagrid('getEditors',rowIndex);
			var sfgzEditor = editors[1];
			sfgzEditor.target.val("N");
			$('#cbbBillDefineDataGrid').datagrid('endEdit', rowIndex);
			
		}
	} else {
		var checkbox = document.getElementById(id);
		var isCheck = false;
		if (checkbox.checked) {
			isCheck = true;
		}
		if (isCheck) {
			document.getElementById(id).checked = false;
		} else {
			document.getElementById(id).checked = true;
		}
	}
}

/**
 * 【是否添加/编辑显示】转换方法
 * 
 * @param value
 * @param rowData
 * @param rowIndex
 * @returns {String}
 */
function fomaterIsVisible(value, rowData, rowIndex) {
	var c = "";
	if (rowData.COL_IS_VISIBLE == "Y") {
		c = "<input type='checkbox' id='"
				+ rowData.ID
				+ "IsVisible' checked='checked' value='Y' onclick='onCheckIsVisible(\""
				+ rowData.ID + "IsVisible\"," + rowIndex + ")' />";
	} else {
		c = "<input type='checkbox' id='" + rowData.ID
				+ "IsVisible' value='N' onclick='onCheckIsVisible(\"" + rowData.ID
				+ "IsVisible\"," + rowIndex + ")' />";
	}
	return c;
}


/**
 * 【是否添加/编辑显示】复选框值发生改变更新datagrid对应的值
 * 
 * @returns
 */
function onCheckIsVisible(id, rowIndex) {
	
	if (endEditing()) {
		$("#cbbBillDefineDataGrid").datagrid('removeEditor', 'COL_IS_VISIBLE'); // 删除【是否添加/编辑显示】编辑器
		$("#cbbBillDefineDataGrid").datagrid('addEditor', { // 添加【是否添加/编辑显示】编辑器
			field : 'COL_IS_VISIBLE',
			editor : {
				type : 'text'
			}
		});
		
		var checkbox = document.getElementById(id);
		var isCheck = false;
		if (checkbox.checked) {
			isCheck = true;
		}
		if (isCheck) {
			$('#cbbBillDefineDataGrid').datagrid('selectRow', rowIndex).datagrid('beginEdit', rowIndex);
			var editors = $('#cbbBillDefineDataGrid').datagrid('getEditors',rowIndex);
			var sfgzEditor = editors[2];
			sfgzEditor.target.val("Y");
			$('#cbbBillDefineDataGrid').datagrid('endEdit', rowIndex);
		} else {
			
			$('#cbbBillDefineDataGrid').datagrid('selectRow', rowIndex).datagrid('beginEdit', rowIndex);
			var editors = $('#cbbBillDefineDataGrid').datagrid('getEditors',rowIndex);
			var sfgzEditor = editors[2];
			sfgzEditor.target.val("N");
			$('#cbbBillDefineDataGrid').datagrid('endEdit', rowIndex);
			
		}
	} else {
		var checkbox = document.getElementById(id);
		var isCheck = false;
		if (checkbox.checked) {
			isCheck = true;
		}
		if (isCheck) {
			document.getElementById(id).checked = false;
		} else {
			document.getElementById(id).checked = true;
		}
	}
}



/**
 * 【是否添加/编辑只读】转换方法
 *
 * @param value
 * @param rowData
 * @param rowIndex
 * @returns {String}
 */
function fomaterEditReadOnly(value, rowData, rowIndex) {
	var c = "";
	if (rowData.ATTRIBUTE_04 == "Y") {
		c = "<input type='checkbox' id='"
			+ rowData.ID
			+ "ReadOnly' checked='checked' value='Y' onclick='onCheckEditReadOnly(\""
			+ rowData.ID + "ReadOnly\"," + rowIndex + ")' />";
	} else {
		c = "<input type='checkbox' id='" + rowData.ID
			+ "ReadOnly' value='N' onclick='onCheckEditReadOnly(\"" + rowData.ID
			+ "ReadOnly\"," + rowIndex + ")' />";
	}
	return c;
}
/**
 * 【是否添加/编辑只读】复选框值发生改变更新datagrid对应的值
 *
 * @returns
 */
function onCheckEditReadOnly(id, rowIndex){
	if (endEditing()) {
		$("#cbbBillDefineDataGrid").datagrid('removeEditor', 'ATTRIBUTE_04'); // 删除【是否添加/编辑只读】编辑器
		$("#cbbBillDefineDataGrid").datagrid('addEditor', { // 添加【是否添加/编辑只读】编辑器
			field : 'ATTRIBUTE_04',
			editor : {
				type : 'text'
			}
		});

		var checkbox = document.getElementById(id);
		var isCheck = false;
		if (checkbox.checked) {
			isCheck = true;
		}
		if (isCheck) {
			$('#cbbBillDefineDataGrid').datagrid('selectRow', rowIndex).datagrid('beginEdit', rowIndex);
			var editors = $('#cbbBillDefineDataGrid').datagrid('getEditors',rowIndex);
			var sfgzEditor = editors[3];
			sfgzEditor.target.val("Y");
			$('#cbbBillDefineDataGrid').datagrid('endEdit', rowIndex);
		} else {

			$('#cbbBillDefineDataGrid').datagrid('selectRow', rowIndex).datagrid('beginEdit', rowIndex);
			var editors = $('#cbbBillDefineDataGrid').datagrid('getEditors',rowIndex);
			var sfgzEditor = editors[3];
			sfgzEditor.target.val("N");
			$('#cbbBillDefineDataGrid').datagrid('endEdit', rowIndex);

		}
	} else {
		var checkbox = document.getElementById(id);
		var isCheck = false;
		if (checkbox.checked) {
			isCheck = true;
		}
		if (isCheck) {
			document.getElementById(id).checked = false;
		} else {
			document.getElementById(id).checked = true;
		}
	}
}



/**
 * 【是否表格显示】转换方法
 * 
 * @param value
 * @param rowData
 * @param rowIndex
 * @returns {String}
 */
function fomaterIsTabVisible(value, rowData, rowIndex) {
	var c = "";
	if (rowData.COL_IS_TAB_VISIBLE == "Y") {
		c = "<input type='checkbox' id='"
				+ rowData.ID
				+ "IsTabVisible' checked='checked' value='Y' onclick='onCheckIsTabVisible(\""
				+ rowData.ID + "IsTabVisible\"," + rowIndex + ")' />";
	} else {
		c = "<input type='checkbox' id='" + rowData.ID
				+ "IsTabVisible' value='N' onclick='onCheckIsTabVisible(\"" + rowData.ID
				+ "IsTabVisible\"," + rowIndex + ")' />";
	}
	return c;
}



/**
 * 【是否表格显示】复选框值发生改变更新datagrid对应的值
 * 
 * @returns
 */
function onCheckIsTabVisible(id, rowIndex) {
	
	if (endEditing()) {
		$("#cbbBillDefineDataGrid").datagrid('removeEditor', 'COL_IS_TAB_VISIBLE'); // 删除【是否表格显示】编辑器
		$("#cbbBillDefineDataGrid").datagrid('addEditor', { // 添加【是否表格显示】编辑器
			field : 'COL_IS_TAB_VISIBLE',
			editor : {
				type : 'text'
			}
		});
		
		var checkbox = document.getElementById(id);
		var isCheck = false;
		if (checkbox.checked) {
			isCheck = true;
		}
		if (isCheck) {
			$('#cbbBillDefineDataGrid').datagrid('selectRow', rowIndex).datagrid('beginEdit', rowIndex);
			var editors = $('#cbbBillDefineDataGrid').datagrid('getEditors',rowIndex);
			var sfgzEditor = editors[4];
			sfgzEditor.target.val("Y");
			$('#cbbBillDefineDataGrid').datagrid('endEdit', rowIndex);
		} else {
			
			$('#cbbBillDefineDataGrid').datagrid('selectRow', rowIndex).datagrid('beginEdit', rowIndex);
			var editors = $('#cbbBillDefineDataGrid').datagrid('getEditors',rowIndex);
			var sfgzEditor = editors[4];
			sfgzEditor.target.val("N");
			$('#cbbBillDefineDataGrid').datagrid('endEdit', rowIndex);
			
		}
	} else {
		var checkbox = document.getElementById(id);
		var isCheck = false;
		if (checkbox.checked) {
			isCheck = true;
		}
		if (isCheck) {
			document.getElementById(id).checked = false;
		} else {
			document.getElementById(id).checked = true;
		}
	}
}


function fomaterCol(value, row, index) {
	if (value == null || value == "null") {
		value = "";
	}
		return value;
}

function fomaterRow(value, row, index) {
	if (value == null || value == "null") {
		value = "";
	}
	return value;
}

function fomaterOrder(value, row, index) {
	if (value == null || value == "null") {
		value = "";
	}
	return value;
}

/**
 * 单击行
 * 
 * @param index
 */
function onClickRow(rowIndex, field, value) {
	if (endEditing()) {
		$("#cbbBillDefineDataGrid").datagrid('removeEditor', 'COL_IS_MUST'); // 删除【是否必著】编辑器
		$("#cbbBillDefineDataGrid").datagrid('addEditor', { // 添加【是否必著】编辑器
			field : 'COL_IS_MUST',
			editor : {
				type : 'checkbox',
				options : {
					on : 'Y',
					off : 'N'
				}
			}
		});

		$("#cbbBillDefineDataGrid").datagrid('removeEditor', 'COL_IS_DETAIL'); // 删除【是否详细显示】编辑器
		$("#cbbBillDefineDataGrid").datagrid('addEditor', { // 添加【是否详细显示】编辑器
			field : 'COL_IS_DETAIL',
			editor : {
				type : 'checkbox',
				options : {
					on : 'Y',
					off : 'N'
				}
			}
		});

		$("#cbbBillDefineDataGrid").datagrid('removeEditor', 'COL_IS_VISIBLE'); // 删除【是否添加/编辑显示】编辑器
		$("#cbbBillDefineDataGrid").datagrid('addEditor', { // 添加【是否添加/编辑显示】编辑器
			field : 'COL_IS_VISIBLE',
			editor : {
				type : 'checkbox',
				options : {
					on : 'Y',
					off : 'N'
				}
			}
		});
		
		$("#cbbBillDefineDataGrid").datagrid('removeEditor', 'COL_IS_TAB_VISIBLE'); // 删除【是否表格显示】编辑器
		$("#cbbBillDefineDataGrid").datagrid('addEditor', { // 添加【是否表格显示】编辑器
			field : 'COL_IS_TAB_VISIBLE',
			editor : {
				type : 'checkbox',
				options : {
					on : 'Y',
					off : 'N'
				}
			}
		});
		$('#cbbBillDefineDataGrid').datagrid('selectRow', rowIndex).datagrid(
				'beginEdit', rowIndex);
		editIndex = rowIndex;
	} else {
		$('#cbbBillDefineDataGrid').datagrid('selectRow', editIndex);
	}
}

/**
 * 提交改变的记录
 */
function accept(){
	if (endEditing()) {
		// 更新字段
		var rows = $("#cbbBillDefineDataGrid").datagrid('getChanges', 'updated');
		var updateData = JSON.stringify(rows);
		if (rows.length > 0) {
			$.ajax({
				url : 'platform/cbb/billDefineManagerController/updateCbbTabFormConfigArchiveData.json',
				data : {
					param : updateData,
					sysId : sysId,
					nodeId : nodeId,
					nodeName : nodeName,
					tableName : tableName,
					tableId : tableId,
					archiveStatus : 0
				},
				type : 'post',
				dataType : 'json',
				success : function(result) {
					if (result.flag == "success") {
						reloadDataGrid();
						$.messager.show({
							title : '提示',
							// '保存成功!'
							msg : commonLang.optip.save.success,
							timeout : 3000,
							showType : 'slide'
						});
					} else {
						if (result.flag == "failure") {
							$.messager.show({
								title : '提示',
								// "保存失败!"
								msg : commonLang.optip.save.fail,
								timeout : 2000,
								showType : 'slide'
							});
						} else {
							$.messager.alert('提示', result.flag, 'warning');
						}
					}
				}
			});
		}
	}
}
/**
 * 重置
 */
function reset() {
	// '请确认', '确定要将所有数据重置吗？'
	$.messager.confirm(commonLang.tip.confirm, commonLang.optip.content2, function(b) {
		if (b) {
			// 更新字段
			var rows = $("#cbbBillDefineDataGrid").datagrid('getRows');
			var updateData = JSON.stringify(rows);
			if (rows.length > 0) {
				$.ajax({
					url : 'platform/cbb/billDefineManagerController/resetCbbTabFormConfigData.json',
					data : {
						param : updateData,
						sysId : sysId,
						nodeId : nodeId,
						nodeName : nodeName,
						tableName : tableName,
						tableId : tableId,
						archiveStatus : 0,
					},
					type : 'post',
					dataType : 'json',
					success : function(result) {
						if (result.flag == "success") {
							reloadDataGrid();
							$.messager.show({
								title : '提示',
								// '重置成功!'
								msg : commonLang.optip.content3,
								timeout : 3000,
								showType : 'slide'
							});
						} else {
							if (result.flag == "failure") {
								$.messager.show({
									title : '提示',
									// "重置失败!"
									msg : commonLang.optip.content4,
									timeout : 2000,
									showType : 'slide'
								});
							} else {
								$.messager.alert('提示', result.flag, 'warning');
							}
						}
					}
				});
			}
		}
	});
}
/**
 * 刷新表格数据
 */
function reloadDataGrid() {
	var url = 'platform/cbb/billDefineManagerController/getCbbBillDefineManagerData.json?sysId='
		+ sysId
		+ '&nodeId='
		+ nodeId
		+ "&tableName="
		+ tableName
		+ "&tableId="
		+ tableId + "&nodeName=" + nodeName + "&archiveStatus=0";
	$('#cbbBillDefineDataGrid').datagrid("options").url = url;
	$("#cbbBillDefineDataGrid").datagrid('load', {
		param : null
	});
}

/**
 * 转换列类型
 * 
 * @param value
 * @param row
 * @param index
 * @returns
 */
function fomaterColType(value, row, index) {
	if (value == 'string') {
		return "字符串";
	} else if (value == 'integer') {
		return "整型";
	} else if (value == 'date') {
		return "日期时间型";
	}
	return value;
}

/**
 * 转换是否
 * 
 * @param value
 * @param row
 * @param index
 * @returns
 */
function fomaterYn(value, row, index) {
	if (value == 'Y') {
		return "是";
	} else {
		return "否";
	}
	return value;
}



/**
 * 跳转表单设计页面
 */
function openForm() {
	var dialogId = "formShowDialog";
	var toActionUrl = "platform/cbb/billDefineManagerController/toFormShow?dialogId=" + dialogId + "&sysId=" + sysId + "&nodeId=" + nodeId + "&tableName=" + tableName + "&nodeName=" + nodeName+ "&archiveType=2&archiveStatus=0";
	// "表单设计"
	var usdAdd = new CommonDialog(dialogId, "1300", "1000", toActionUrl, commonLang.tip.formDesign, false, true, false);
	usdAdd.show();
}

/**
 * 打开设置模板列数form
 */
function setColumn() {
	var dialogId = "formSetColumn";
	var toJspUrl = "avicit/cbb/techclass/billdefine/billdefine_set_column.jsp?nodeId=" + nodeId + "&tableId=" + tableId + "&dialogId=" + dialogId;
	// "设置模板列数"
	var usdAdd = new CommonDialog(dialogId, "400", "200", toJspUrl, commonLang.tip.setTempNum, false, true, false);
	usdAdd.show();
}
